return {
  "goolord/alpha-nvim",
  opts = function(_, opts)
    -- customize the dashboard header
    local function button(sc, txt, keybind, keybind_opts)
      local leader = "SPC"
      local if_nil = vim.F.if_nil
      local sc_ = sc:gsub("%s", ""):gsub(leader, "<leader>")

      local opts = {
        position = "center",
        shortcut = sc,
        cursor = 3,
        width = 50,
        align_shortcut = "right",
        -- hl_shortcut = "Keyword",
        hl = "DashboardCenter",
        hl_shortcut = "DashboardShortcut",
      }
      if keybind then
        keybind_opts = if_nil(keybind_opts, { noremap = true, silent = true, nowait = true })
        opts.keymap = { "n", sc_, keybind, keybind_opts }
      end

      local function on_press()
        local key = vim.api.nvim_replace_termcodes(keybind or sc_ .. "<Ignore>", true, false, true)
        vim.api.nvim_feedkeys(key, "t", false)
      end

      return {
        type = "button",
        val = txt,
        on_press = on_press,
        opts = opts,
      }
    end
    opts.section.header.val = {
      [[]],
      [[          ▀████▀▄▄              ▄█ ]],
      [[            █▀    ▀▀▄▄▄▄▄    ▄▄▀▀█ ]],
      [[    ▄        █          ▀▀▀▀▄  ▄▀  ]],
      [[   ▄▀ ▀▄      ▀▄              ▀▄▀  ]],
      [[  ▄▀    █     █▀   ▄█▀▄      ▄█    ]],
      [[  ▀▄     ▀▄  █     ▀██▀     ██▄█   ]],
      [[   ▀▄    ▄▀ █   ▄██▄   ▄  ▄  ▀▀ █  ]],
      [[    █  ▄▀  █    ▀██▀    ▀▀ ▀▀  ▄▀  ]],
      [[   █   █  █      ▄▄           ▄▀   ]],
    }
    opts.config.opts.noautocmd = false
    opts.section.buttons.val = {
      button("f", " " .. " Find file", ":Telescope fd <CR>"),
      button("e", " " .. " File Explore", ":Telescope file_browser <CR>"),
      button("n", " " .. " New file", ":ene <BAR> startinsert <CR>"),
      button("o", " " .. " Old files", ":Telescope oldfiles <CR>"),
      button("w", " " .. " Find words", ":Telescope live_grep <CR>"),
      button("p", " " .. " Projects", ":Telescope projects <CR>"),
      button("c", " " .. " Config", ":e $MYVIMRC <CR>"),
      button("s", " " .. " Restore Session", [[:lua require("resession").load("Last Session") <cr>]]),
      button("m", "󰏖 " .. " Mason", ":Mason<CR>"),
      button("l", "󰒲 " .. " Lazy", ":Lazy<CR>"),
      button("q", " " .. " Quit", ":qa<CR>"),
    }
  end,
}
